Rules engine for warehouse management systems

ABSTRACT

A novel rules engine which automates many warehouse processes, and provides for efficient management of a warehouse. The rules engine provides a flexible and customizable structure for modeling the many different types of processes governing the function of a warehouse. The rules engine translates business level logic into code for manipulating the warehouse database. The rules engine allows a user to create their own user logic for working with the database, which operates at a level of abstraction more feasible for the user. The rules engine understands the user logic by the way the user decides how to string various restrictions together. The rules engine implements the translation via its internal understanding of the structure of the particular application. Thus, the rules engine allows the user to define logic without understanding how to manipulate a database.

FIELD OF THE INVENTION

The present invention relates to management of warehouse functions, andmore particularly to computer program-implemented management ofwarehouse functions.

BACKGROUND OF THE INVENTION

Material handing rules, customer requirements, storage constraints, andefficiency, place complex demands on the modern warehouse. Warehousemanagement systems enable a warehouse to dispatch tasks and manageinventory. Currently many decisions within a warehouse, however, areleft for an operator and/or supervisor to perform, demanding a highdegree of training, but still yielding sub-optimal results andoccasionally, serious mistakes.

A common warehouse management system 10 is illustrated in FIG. 1. Thesystem has a number of system defined rules 20. The rules executionfunction 40 uses the attributes of a specific request 30 and anapplicable system defined rule to manipulate a database 50 containingsuch information as quantity of inventory, location of inventory, etc.The warehouse management system 10 then provides the user with asolution 60. For example, a particular item may have just been received.The user can enter the description of the item, and the warehousemanagement system will tell the user where current stock of the sameitem is located, so that the new quantity can be added to the existingquantity in the same location.

Effectiveness can be increased by customizing the warehouse managementsystem in accordance with the users specific business, processes, andneeds. Customization in traditional systems entails going back to thesoftware vendor or a third party, to make modifications to the systemdefined rules and or adding additional rules to model processes of thespecific user. However such customization results in increased systemscosts, difficulty in upgrading, and may also make it difficult for theuser to change their area or way of business in response to changingcustomer needs.

SUMMARY OF THE INVENTION

The present invention enables the efficient management of inventory,personnel and space in a warehouse or supply chain. A rules engine, inthe warehouse management system, provides a flexible and customizablerepository for modeling many different types of processes used toeffectively manage a warehouse. A warehouse management system is thenable to provide intelligent solutions in response to requested actionsperformed in the warehouse. Thus a decision making process of warehousemanagement systems is automated, removing it from the operator andthereby reducing mistakes and increasing efficiency.

Intelligent solutions are obtained from manipulation of a warehousedatabase, by the rules engine. The rules engine allows each individualwarehouse to create rules to model the processes followed by thewarehouse. The rules engine is also able to execute the rules, whichmanipulate the warehouse database to find intelligent solutions.

In one embodiment, the present invention is implemented as a process forobtaining intelligent solutions for management of warehouse functions.The process of obtaining intelligent solutions includes the steps ofreceiving a request to perform an action in the warehouse. The requestto perform an action is comprised of a list of attributes, which act tocharacterize the requested action. A hierarchical search, based upon thespecific attributes, is then performed on a database. The databasecontains various information about the items in a warehouse. Anintelligent solution is provided based upon information contained in thedatabase, which best matches, the attributes of the requested action.

In so doing, the rules execution function intelligently: suggestsmaterial allocations for picking, suggests put away locations for LPNs,assigns tasks to resources with appropriate training and equipment,assigns cost groups to transactions, and assures internal, customer, andcarrier compliant labels.

In a second embodiment of the present invention, a warehouse managementsystem provides a means for obtaining an intelligent solution to arequested management action performed in the warehouse. The warehousemanagement system includes a means for defining rules to model therequested management action based upon logic defined by the user. Thewarehouse management system also includes a means for manipulating adatabase. The database contains elements describing the items containedin the warehouse. The method of manipulating the database is based uponthe defined rules and the requested management action.

In a third embodiment of the present invention, a warehouse managementsystem provides for a rules creation function and a rules executionfunction. The rules creation function is capable of translating userdefined logic, which models warehouse processes, into user definedrules. The rules execution function is capable of manipulating adatabase, containing information about the contents of a warehouse,according to the user defined rules and system defined rules. Themanipulation of the database according to the user defined rules andsystem defined rules provides the rules execution function with theability to provide intelligent solutions to a requested action.

In so doing, the rules execution function processes requests by startingat a highest priority criteria of an applicable rule, and continuessearching in the order of priority unit a matching criteria is found oruntil it reaches a lowest priority criteria. The rules executionfunction then searches a strategy associated with the matchingcriterion. Additional attributes of the request and strategy sequencedetermine which strategy is selected for the matching criteria. The ruleexecution function then searches one or more solutions associated withthe matching strategy using additional attributes and solution sequence.The solution selected is the one or more solutions that satisfy all therestrictions of the rule.

In a forth embodiment of the present invention, automated management ofa warehouse is implemented by creating user defined rules. The userdefined rules, along with system defined rules are then executed toobtain an intelligent solution.

In fifth embodiment of the present invention, a process for creatinguser defined rules is implemented by defining one or more solutions andselecting one or more criteria. The criteria are the standards or testsupon which the user defined rules select a particular solution.

In a sixth embodiment of the invention, user defined rules are createdin a hierarchical structure that allows for efficient operation.Creating a rule is divide into four main steps: identifying a rule type;selecting and prioritizing one or more criteria, defining one or morestrategies for each of the selected criteria, and finally defining oneor solutions for each of the selected criteria and or solutions.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and not by way oflimitation, in the figures of the accompanying drawings and in whichlike reference numerals refer to similar elements and in which:

FIG. 1 shows a block diagram of a warehouse management system, accordingto the prior art.

FIG. 2 shows a block diagram of a warehouse management system, accordingto one embodiment of the present invention.

FIG. 3 shows a hierarchical structure of a possible user defined rule.

FIG. 4 shows a flow diagram of a process for creating a user definedrule, according to another embodiment of the present invention.

FIG. 5 shows a hierarchical structure of a possible user defined rulecreated by a rules creation function. According to another embodiment ofthe present invention.

FIG. 6 shows a flow diagram of a second embodiment of a warehousemanagement system.

FIG. 7 shows a hierarchical structure of a possible user defined rulecreated by a rules creation function, according to another embodiment ofthe present invention.

FIGS. 8A-8D shows an example of a possible graphical user interfaceimplementation of a rules creation function, according to anotherembodiment of the present invention.

FIG. 9 shows a block diagram of a warehouse management system, accordingto another embodiment of the present invention.

FIG. 10 shows a block diagram of a warehouse management system,according to another embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Reference will now be made in detail to the embodiments of theinvention, examples of which are illustrated in the accompanyingdrawings. While the invention will be described in conjunction with thepreferred embodiments, it will be understood that they are not intendedto limit the invention to these embodiments. On the contrary, theinvention is intended to cover alternatives, modifications andequivalents, which may be included within the spirit and scope of theinvention as defined by the appended claims. Furthermore, in thefollowing detailed description of the present invention, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. However, it will be obvious toone of ordinary skill in the art that the present invention may bepracticed without these specific details. In other instances, well knownmethods, procedures, and components have not been described in detail asnot to unnecessarily obscure aspects of the present invention.

Referring now to FIG. 2, a diagram of a warehouse management system 70in accordance with one embodiment of the present invention is shown. Thewarehouse management system 70 includes a rules engine 80communicatively coupled to a warehouse database 140. The rules engineincludes a rules creation function 100, one or more user defined rules &system defined rules 110, and a rules execution function 130.

The rules engine 80 provides an intelligent solution 150 in response toa requested action 120 performed in the warehouse. The intelligentsolution 150 is obtained by manipulation of the warehouse database 140by the rule rules execution function 130, based upon the user definedrules and or system defined rules 110. The user defined rules and systemdefined rules 110 are capable of modeling any warehouse process 90. Thewarehouse database 140 contains information about the contents of awarehouse and elements describing them.

The rules engine 80 has two primary features: a rules creation function100 and a rules execution function 130. The rules creation function 100is used to create user defined rules that model the various warehouseprocesses 90 (also referred to as user defined logic). The rulesexecution function 130 uses the user defined rules and system definedrules 110, along with the attributes of a requested action 120, tomanipulate the warehouse database 140 in order to provide theintelligent solution.

FIG. 3 shows a hierarchical structure of a user defined rule 160, inaccordance with another embodiment of the present invention. The userdefined rule 160 includes one or more criteria 170, one or morestrategies 180, and one or more solutions 190.

The user defined rule consists of a complete relationship between thecriteria 170, strategies 180, and solutions 190, used to fulfill aparticular warehouse process. The relationship between each level of thehierarchical structure consists of one or more restrictions. A userdefined rule can be based on nearly any field in a warehouse database.

FIG. 4 shows the process of creating a user defined rule 200 asimplemented by a rules creation function, in accordance with oneembodiment of the present invention. The process of creating a userdefined rule 200 includes: identifying the rule type 210; selectingapplicable criteria, and prioritizing the criteria 220; definingstrategies for each criteria 230; and finally defining solutions 250.

The rule type 210 is the name of the rule that implements a particularwarehouse process, such as pick, put away, task type assignment, costgroup assignment, or label format assignment.

The criteria 220 used for each rule type are then selected. Criteria arethe standards on which judgments or decisions are based. Examples ofcriteria may include: Item category, item, customer, freight carrier,order type, default, etc. It is also possible to define and sequence anysub-criteria, such as perishable, summer seasonal, winter season, for acriterion such as item category. Not all the available criteria need tobe assigned in the rule type. In fact, it is unlikely that anorganization will need more than three or four criteria in each rule.Next the criteria need to be prioritized. The most specific criteria isdesignated as having the highest priority, with the next less specificcriteria given the next highest priority, until the most generalcriteria is given the lowest priority. The priority determines the orderin which a rules execution function will search for a criterion thatmatches one or more attributes of a requested action.

An example of a possible user defined rule is depicted in FIG. 5. Theexample illustrates the selection of three criteria: item 260, itemcategory 270, and organization 280. Item category has three sub-criteriasequenced in the order of perishable 300, summer seasonal 310, winterseasonal 320. Item 260 is the most specific criteria and is thusassigned the highest priority, denoted by (10). Item category 270 isassigned an intermediate priority, denoted by (20). Organization 280 isthe most general criteria and is thus assigned the lowest priority,denoted by (30).

The strategies are an ordered sequence of solutions that are used to tryto fulfill complex requested actions. Strategies are defined, such asquality, never commingle, refrigerate, off season, on season, defaultput away, etc. The strategies are then associated with the applicablecriteria. Common occurrences of strategies can be combined, potentiallycreating a many to many relationship.

For example, FIG. 5 shows the defining of five strategies: nevercommingle 350, refrigerate 360, off season 370, on season 380, defaultput away 390. Each strategy is associated with applicable criteria. Thesummer seasonal 310 and winter seasonal 320 criteria each have commonoccurrences of the on season 380 and off season 370 strategies.Therefore the two on season and two off season strategies can becombined creating multiple to multiple relationships with summer andwinter season criteria.

Solutions are then defined and are associated with applicable strategiesor criteria. Sequencing of the solutions will determine the orderchosen. Again, common occurrences of solutions can be combined,potentially creating a many to many relationship.

For example, FIG. 5 shows the defining of six solutions: put in emptylocator 410, put into any location but do not commingle 420, put intorefrigerated location 430, put into location with rack #>3 440, put inlocation with rack #<=3 450, put into any locator 460.

As can be seen from FIG. 5, the solutions along with permittedassociations between solution and strategy, strategy and criteria, andsolution and criteria, represent the various restrictions of a rule.

The schematic represented by FIG. 5, however, would grow to complex toconstruct for all but the simplest cases. In another embodiment of theinvention, a navigator-like approach can be taken, instead, to map outreal-life systems. For example:

-   Rule Type    -   Criteria        -   Sub-Criteria            -   Strategy                -   Solution

The example of FIG. 5 can be mapped out as:

-   Put Away Rules    -   (10) Item        -   PR11568            -   (10) Never Commingle Strategy                -   (10) Put away into empty locator                -   (20) Put away into any locator, do not commingle    -   (20) Category        -   Perishable            -   (10) Refrigerated Strategy                -   (10) Put into refrigerated locator        -   Summer Seasonal            -   (10) On Season Strategy (mar-sep)                -   (10) Put away into locator with rack >3                -   (20) Put away into any locator            -   (20) Off Season Strategy (oct-feb)            -   (10) Put away into locator with rack <=3            -   (20) Put away into any locator        -   Winter Seasonal            -   (10) On Season Strategy (oct-feb)                -   (10) Put away into locator with rack <=3                -   (20) Put away into any locator            -   (20) Off Season Strategy (mar-sep)                -   (10) Put away into locator with rack >3                -   (20) Put away into any locator    -   (30) Default        -   Default            -   (10) Default Put Away Strategy                -   (10) Put away into empty locator                -   (20) Put away into any locator, do not commingle                -   (30) Put away into any locator

To read the navigator-like text schematic, one searches down thehierarchy of criteria until an attribute of the requested actionmatches. The first strategy that is applicable and currently effectivefor the matching criteria is selected. Then one goes down the solutionsof the strategies in order. The numbers in parentheses indicates thepriority of the corresponding criterion or the sequence of the strategyor solution.

FIG. 6 shows a warehouse management system in accordance with analternative embodiment of the present invention. A rules creationfunction 470 receives user defined logic 465 and creates user definedrules 555 therefrom. A rules execution function 565 uses the userdefined rules 555 to manipulate a database 570 in order to provide anintelligent solution 575 in response to one or more attributes of arequested action 560.

The rules creation function 470 is used to perform the following stepsto create the user defined rules 555: specify an entity 475, select arule type 480, select applicable criteria and prioritize the selectedcriteria 490, define one or more strategies 500, define one or moresolutions 510, sequence the solutions 520, assign the solutions to therelated strategies and or the criteria 530, sequence the strategies 540,and assign the strategies to the related criteria 550.

The rules creation function can be used to obtain an integratedwarehouse management systems across a full chain of related entities.For example, the management systems for the raw material supplier,manufacturer, distributor, carriers, and other entities, could beintegrated. Therefore, the rules creation function also provides forspecifying the entity 470 for each rule type.

FIG. 7 illustrates a possible picking rule used by a warehouse thatcarries strawberries. An example of user defined logic for pickingstrawberries can be summarized as including restrictions based uponquality and expiration, and restrictions based upon the customer. Forexample strawberries have lot grades of Excellent, Good, and Average.Restaurants and Retailers require Excellent strawberries when available,and Good strawberries only if necessary. However, Jam Manufacturers onlyneed Average strawberries. The Warehouse wants to fill orders on a firstexpired first out (FEFO) basis.

In the above example, the warehouse's requirements (Organization 640)are the most general. Specific customers have more restrictiverequirements. Therefore, the Customer criterion 610 is selected andgiven highest priority. The Customer criterion 610 has Restaurants &Retailers 620, and Jam Manufacturer 630 sub-criteria. The Restaurants &Retailers 620 sub-criterion is sequence before the Jam Manufacture 630sub-criterion because it is more restrictive.

The strawberry example requires four solutions. First the Restaurants &Retailers require picking of Excellent strawberries and the warehousewants to fill the order on a FEFO (First Expire First Out) basis. IfExcellent strawberries are not available they will accept Goodstrawberries. Again the warehouse will want to fill the order on a FEFObasis. Because Jam Manufactures only need Average strawberries, thewarehouse will want to try to fill the order with Average strawberries,but will supply Good or Excellent if necessary. In the absence of theabove requirements, the warehouse will supply strawberries on just aFEFO basis. This leads to four solutions: Excellent & FEFO pick 710,Good & FEFO pick 720, Average & FEFO pick 730, Default FEFO pick 740.

The requirements of the Restaurants & Retailers can first be satisfiedby the Excellent & FEFO pick and then by the Good & FEFO pick. The JamManufacturers requirements can be satisfied by the Average & FEFO pickand then by the Default FEFO pick. The warehouses restrictions aresimply satisfied by the Default FEFO pick. Therefore, three strategiesare required: Excellent/Good 670, Average/Default 680, and Default 690.

FIGS. 8A-8D depict a possible graphical user interface implementationfor using a rules creation function in accordance with an embodiment ofthe present invention. FIG. 8A shows two view of a criteria priorityform. The first view is used to select and prioritize applicablecriteria; while the second view is used to specify and sequencesub-criteria. FIG. 8B shows two views of a defining solutions form. Thefirst view is used to define solutions; while the second view is used tosort the solutions. FIG. 8C is a strategy form. The strategy form isused to define strategies and associate the defined solutions with thedefined strategies. FIG. 8D is a strategy assignment form. The strategyassignment form is used to assign the defined strategies to the selectedcriteria. Furthermore, the rule creation function illustrated in FIGS.8A-8D corresponds to the picking rule in FIG. 7.

First, criteria priority form, FIG. 8A, is used to specify criteria andtheir priority for each rule type. The rule type is specified 800, thenthe specific criteria may be selected from a list of criteria, or may bedefined in the Name and Description columns 810. Priority is assigned toeach criterion in the Priority column of the form 820. The prioritynumbers need not be consecutive. The criteria with the lowest prioritynumber will be examined first, the criteria with the next lowestpriority number will be examined next, and so forth. Multiples of tencan be used at first to allow easy insertion of criteria in the futurewithout having to reassign all the priority numbers. It is also possibleto specify sub-criteria for each selected criteria.

FIG. 8A illustrates the selection and sequencing of the criteria forpicking of strawberries. The Customer criteria is selected and givenhighest priority. The Organization is also selected, from the list ofavailable criteria, and assigned lowest priority. The Restaurant &Retailers and Jam Manufacturers sub-criteria for the Customer criterionare also specified.

Next the various solutions are created using the defining solutionsform, FIG. 8B. The rule type is specified 800, then a solution name anda description of the solution is designated 830, 840. The body of thesolution is then entered 900. Each row corresponds to an element, andmultiple rows can be joined with AND and OR operators 915. By enteringopening and closing parentheses at the beginning and ending of lines 920970, complex compound statements can be formed. The sequence column 910is used to specify the sequence in which the elements are linkedtogether. The sequence numbers need not be consecutive. The element withthe lowest sequence number will be examined first, the element with thenext lowest sequence number will be examined next, and so forth.Multiples of ten can be used at first to allow easy insertion ofelements in the future without have to reassign all the element numbers.

Objects 930 and parameters 940 form the heart of each line, and may bebased on any field in a database. The objects 930, parameters 940, andtheir value fields 960 are context sensitive, so that only parametersparticular to the selected object can be selected, and the user willonly be prompted for a value if it is necessary. A quantity function 965is specified for picking and put away rules, or a return value isspecified for cost group, task, and label format rules.

The sort tab 890 allows the list of locators, for a pick or put awaytask, to be sorted. The objects and parameters that can be used tospecify sortation are a subset of those for which restrictions can bespecified. Multiple sort criteria, such as FIFO and FEFO, can be used tobreak ties at lower levels.

The rules engine comes preconfigured with several basic solutions. Thesesolutions will not have the user defined checkbox 860 checked, and theycannot be edited. Solutions that are user defined can be edited, as longas they are not enabled 850, and the user defined checkbox cannot beunchecked. When solutions are enabled via the checkbox, they can beassigned to strategies, but enabled solutions cannot be edited. Uponenabling the solution, the solution will be checked for correct syntax.

Solutions can be either entity(i.e. warehouses and the like) specific,or shared between entities by checking the common for all entitiescheckbox 880. For pick, put away, and cost group rules, making solutionscommon to all entities does not necessarily mean that all entities usethat solution, only that it is possible for a strategy in another entityto use that solution. However, for task type and label format rules,making solutions common to all entities means that all entities use thatsolution, as there are no strategies or criteria assignment for thesetypes of solutions.

The minimum pick task button 870, available only for a picking tasksolution, attempts to minimize the number of picks required for a task,subject to the restrictions, but regardless of the sort criteria. Unitsof measure and unit of measure conversions are defined in the units ofmeasure form, and assigned to the subinventory as the pick unit ofmeasure.

FIG. 8B illustrates the defining of the Excellent & FEFO solution forthe strawberry example.

Third, strategies are constructed from one or more solutions. Strategiesare a sequence of solutions that will be tried to allocate material orspace to fulfill a request. Solutions can be reused for multiplestrategies. Solutions can also be valid only during specific period oftime.

As illustrated in the strategies form, FIG. 8C, the rule type 800 isspecified along with specifying the strategy 980 and a description ofthe strategy 990. The applicable previously defined solution names arethen specified 1030. The sequence number 1040 specifies the order inwhich the solutions are executed. The sequence numbers need not beconsecutive. The solution with the lowest sequence number will beexamined first, the solution with the next lowest sequence number willbe examined next, and so forth. Multiples of ten can be used at first toallow easy insertion of solutions in the future without have to reassignall the sequence numbers.

The solutions available to be assigned to the particular strategy areonly those solutions that are of the same rule type as the strategy, andare further limited by the current organization.

Solutions can also be valid only during specific period of time 1020.Always is also an option for the effective date. The user defined checkbox 1000 is identical to the one in the solutions form. Preconfiguredstrategies cannot be modified. When a strategy is enabled 1010, itcannot be changed. Furthermore, solutions that are used in an enabledstrategy cannot be disabled. All strategies that used a particularsolution must be disabled before the solution is disabled, this preventspotential data corruption problems.

FIG. 8C, illustrates the defining of the excellent/good solution, andthe assigning of the Excellent & FEFO pick and Good & FEFO pick to thesolution.

Finally, strategies are assigned to criteria using the strategyassignment form, FIG. 8D. A criteria selected in the criteria priorityform is specified 1060, along with the sub-criteria if applicable 1070.As before, sequence numbers 1080 are used to order the strategies.Strategies of different types can be assigned to the same criteria.However, the rules engine stops searching for a strategy when it comesto the first applicable strategy. Therefore, if multiple strategies ofthe same type are effective during the same period, only the one withthe lowest sequence number will be selected.

FIG. 8D, illustrates the assigning of the Excellent/Good strategy to theRestaurants & Retailers sub-criteria of the customer criteria.

The implementation of translating the above specified logic into codefor use by the rules engine is well know to persons in the art, andtherefore will not be described.

In another embodiment of the invention, a rules execution function iscapable of utilizing a user defined rule in response to a requestedaction to manipulate a warehouse database. The rules execution functionis then able to provide an intelligent solution.

The rules execution function processes the requested action, bycomparing the attributes of the requests to the criteria of anapplicable rule. The rules execution function starts at the highestpriority criteria, and continues searching in the order of priorityuntil a criterion matching an attribute is found or until it reaches thelowest priority criteria. Additional attributes and strategy sequencedetermine which strategy is selected for the matching criterion. Therules execution function then searches the solutions associated with thematching strategy using additional attributes and solution sequence. Thesolution selected is one or more solutions that satisfy all therestrictions of the rule.

In an alternative feature, if a “Partial Success Allowed” box on thestrategy is checked, then the rules execution function goes through allthe solutions in a strategy in sequence until it allocates the entirerequest. For example, the rules execution function will go through allthe solutions in a strategy until enough material is found in thelocators to fulfill the pick request. Similarly, the rules executionfunction will go through all the solutions in a strategy until enoughcapacity is found for the put away task.

Using the strawberry example, of FIG. 7, the warehouse receives arequest for 3 cases of strawberries from a restaurant. The warehouseactually has 8 cases of excellent strawberries, 6 cases of goodstrawberries, and 10 cases of average strawberries as indicated in thedatabase. For this example, the rules execution function finds a matchbetween the restaurant attribute of the request and the Customer 610criterion, Restaurants & Retailers sub-criterion 620 of the rule.Therefore, the rules execution function proceeds to the Excellent/Goodstrategy 670. The strategy specifies that excellent strawberries will bepicked first based upon the FEFO requirement of the warehouse 710. Therules execution function will output a pick request for the 3 of the 8cases of excellent strawberries that will expire first.

Next the warehouse receives a request for 14 cases of strawberries froma jam producer. The rules execution function starts with the Customercriterion 610, first looking at the Restaurants & Retailers sub-criteria620. Because the Restaurants & Retailers sub-criteria 620 does not matchthe jam producer attribute of the request, it will proceed to the nextsequenced sub-criteria, Jam Manufacturer 630. A match is found and theAverage/Default strategy 680 is selected. The Average & FEFO picksolution 730 will be used first to fill the order. However, there areonly 10 cases of Average strawberries. Therefore, the rules executionfunction will also use the Default FEFO pick 740 to satisfy the order.The four cases of good strawberries that expire first will be selectedto complete the order.

For pick and put away tasks, the rules execution function stops goingthrough additional solutions as soon as the entire task has beenallocated. If a pick or put away task cannot be fully allocated within asolution, partial success will allow a task to be allocated acrossseveral solutions.

In the case of a cost group assignment rule, the rules executionfunction returns a value as soon as the rules execution function comesto a solution where all the restrictions pass. For task type and labelformat assignments, the rules execution function goes through allsolutions available under the criteria, in the specified sequence.

The rules execution function stops searching for a strategy when itcomes to the first applicable strategy. Therefore if multiple strategiesof the same type are affective during the same period, only the one withthe lowest sequence number will be selected.

For the assignment type rules, the rules execution function returns asingle value which is the type of label to be used, type of resourcerequired for the task, or the cost group to be assigned to thetransaction.

For any move request, there must be applicable picking and put awayrules. The rule execution function requires both picking and put awayrules for every move order in order to ensure that a suggestion is nevermade to pick material that is unavailable or to place material in anarea without adequate capacity.

Unless the request should fail if specific restrictions are not met, andthe task to unallocated or unassigned, a general default solution shouldalways be the last solutions in the strategy or criteria.

FIG. 9 shows another embodiment of the warehouse management system. Arules creation function 1110 receives user defined logic 1100 forimplementing various warehouse processes. The rules creation function1110 creates user defined rules 1120 from the user defined logic 1100.The warehouse management system also comes preconfigured with systemdefined rules 1120. A rules execution function 1140 manipulates adatabase 1150 in response to a requested action 1130 and an applicableuser defined rule or system defined rule 1120. The rules executionfunction 1140 outputs an intelligent solution as a result ofmanipulating the database 1150. The requested action 1130 can be any ofa pick request, put away request, cost group request, move request, orany other action to be performed in the warehouse. While the intelligentsolution 1160 can be one or more pick suggestions, put away suggestions,task type assignments, cost group assignments, label format assignments,or any other action performed in the warehouse.

Thus the warehouse management system provides for intelligent: picking;putting away; assigning transactions to cost groups; ensuring internal,carrier, and customer compliant labeling; assigning tasks to a resourcewith appropriate training or equipment; or any other process necessaryto the operation of a warehouse.

For example, the rules engine provides for intelligent solutions for putaway location of new material, based upon virtually any user definedlogic. Some possibilities include: minimizing item fragmentation,requiring no lot commingling in a locator, directing hazardous materialsto a corresponding hazardous storage location, or placing season itemsin a sub-inventory department depending on time or year.

Picking rules can also be created to factor any user defined logic. Someexamples are to ensure stock rotation, or to meet customer requirementssuch as stock condition or quality, lot expiration date, or country oforigin. Other logic examples include: first in first out (FIFO), firstexpired first out (FEFO), picking to deplete a location in order to freeup additional warehouse space, or by cost group ownership, customerrequirements that an entire order be filled by a single lot, orwarehouse preferences that an item be picked from a single location canalso be factored.

Some examples of task type assignment logic that can be factoredinclude: personnel skill sets, equipment requirements and capacity. Forinstance, hazardous tasks can be assigned only to personnel with theappropriate training received to work with hazardous goods, while putaways to the top rack can be limited to personnel who operate high-reachforklifts.

Cost group assignments can be based upon: sales channels such asinternet order and in-store orders, vendor site, item categories such asrefurbished, consigned, and company owned inventor, or even by item.

User defined logic can also be used to select the appropriate labelformat, type, and printer, based on customer, carrier, item category, ortransportation method. Other criteria may include: barcode symbologies,label durability, and lot control.

FIG. 10 shows another embodiment of the warehouse management system. Thewarehouse management system comprises a user interface and repositorymodule 1110, a code generation module 1120, and a run-time codeexecution module 1130. The user interface and repository module 1110supports the definition and storage of business rules. The codegeneration module 1120 supports the automated generation of code basedupon the business rule. The run-time code execution module 1130 executesthe generated code during the operation of the warehouse managementsystem.

The user interface and repository module 1110 allows the user to defineand record business rules, using common business terms, into anorganized set of logical conditions, preferences, measurements andeffectivities. Once defined by the user, the organized set of logicalconditions, preferences, measurements and effectivities, areautomatically translated and implemented by the code generation module1120 into an efficient set of code and operations to execute the processembodied in the business rule. The set of code and operations can thenbe automatically invoked by the warehouse management system whenever atransaction 1150 (such as a request to find the optimal inventoryholding to satisfy an order) is processed. When invoked by the warehousemanagement system, the run-time execution module 1130 selects anappropriate business rule embodied in the code for a particularrequested transaction. The run-time execution module 1130 then combinesdata from a warehouse database 1140 with the business rule embodied inthe code in order to determine an intelligent result 1160.

Hence, embodiment of the present invention provide for a highly flexibleway of defining and then implementing business rules, without having toresort to customization by the warehouse management system vendor or athird party software programmer.

The foregoing descriptions of specific embodiments of the presentinvention have been presented for purposes of illustration anddescription. They are not intended to be exhaustive or to limit theinvention to the precise forms disclosed, and obviously manymodifications and variations are possible in light of the aboveteaching. The embodiments were chosen and described in order to bestexplain the principles of the invention and its practical application,to thereby enable others skilled in the art to best utilize theinvention and various embodiments with various modifications as aresuited to the particular use contemplated. It is intended that the scopeof the invention be defined by the Claims appended hereto and theirequivalents.

1-6. (canceled)
 7. A warehouse management system comprising: a) a rulescreation function, wherein user defined logic is translated into a userdefined rule comprising: selecting an applicable criteria; defining astrategy; and defining solution; and b) a rules execution function,wherein the user defined rule is used to manipulate a database to obtainan intelligent solution to a requested action. 8-20. (canceled)
 21. Aprocess of creating user defined rules, comprising: defining at leastone solution, and selecting at least one criteria for association witheach solution.
 22. The process according to claim 21, further comprisingdefining at least one strategy for association with one or more of theselected criteria.
 23. The process according to claim 22, furthercomprising associating one or more of the defined solutions with one ormore of the defined strategies. 24-25. (canceled)
 26. The processaccording to claim 21, further comprising prioritizing the one or moreof the selected criteria associated with each solution.
 27. The processaccording to claim 21, further comprising sequencing the one or more ofthe defined solutions.
 28. The process according to claim 22, furthercomprising sequencing the one or more of the defined strategiesassociated with each solution.
 29. The process according to claim 21,further comprising specifying an entity for each defined solution. 30.The process according to claim 21, further comprising indicating a ruletype for each defined solution.